#pragma once

#include <exception>
#include <string>

namespace nef {

class nef_exception
	: public std::exception
{
	public:
		nef_exception() { }
		nef_exception(const char *what) : std::exception(what) { }
		nef_exception(const std::string &s) : std::exception(s.c_str()) { }
};

class export_exception
	: public nef_exception
{
	public:
		export_exception() { }
		export_exception(const char *what) : nef_exception(what) { }
		export_exception(const std::string &s) : nef_exception(s) { }
		export_exception(const char *what, const std::exception &inner)
			: nef_exception((std::string)what + "\r\n\r\n" + inner.what())
		{
		}
		export_exception(const std::string &s, const std::exception &inner)
			: nef_exception(s + "\r\n\r\n" + inner.what())
		{
		}

};

}